/**
 * 解码
 * @param nums string字符串 数字串
 * @return int整型
 */
 function solve( nums ) {
  // write code here
  var dp = new Array(nums.length).fill(0)  // 创建一个数组元素的含义是以当前为结尾的字符串有多少
  dp[0] = 1 // 对于0来说 以第0位为结尾的字符串是0个
  for(let i = 1 ; i < nums.length ; i++){ // 从第一位往后遍历
     if(nums[i] === '0'){ // 如果这个数字是0
        if(nums[i-1] === '1' || nums[i-1] === '2'){ // 判断前面是不是1或者2 如果是1或者2 那就是20,10 那么dp[i] = dp[i-2]
           if(i === 1){ // 而当i是1的时候 dp[i-2]越界此时的dp[i] = 1
              dp[i] = 1
           }else{ // 否则的话dp[i] = dp[i-2]
              dp[i] = dp[i-2]
           }
        }
     }else if((nums[i-1] === '2' && nums[i] >'0' && nums[i] < '7') || nums[i-1] === '1'){ // 这个数字不是0的情况 如果前面的数字是1或者2 并且 这个数字是在7以内
        if(i === 1){ // 如果i=1 那么dp[i-2]越界 此时的dp[i] = 2
           dp[i] = 2
        }else { // 否则 dp[i] = dp[i-1] + dp[i-2]
           dp[i] = dp[i-1] + dp[i-2]
        }
     }else { // 如果该数不是0 并且该数的前一位也不再11-19 21-26之间
        dp[i] = dp[i-1] // 那么dp[i] = dp[i-1]
     }
  }
  return dp[nums.length-1]
}
module.exports = {
  solve : solve
};